代码 > 解决csharp xml序列化的hexadecimal value 0x00, is an invalid character问题

2025-04-11

最近在做xml序列化,发现这个问题。

一开始怀疑是源文件问题或者对象失效问题,拿着原文件不停删除行对比,发现具有随机性。

搞了几小时。

起床后灵机一动,是不是真有无效字符,立刻寻找\0字符串。

发现固定在原始数据解析的最后一个元素上。

然后再一查

是读文件的问题

之前用的

            var body = new byte[fileStream.Length];

            fileStream.Read(body, 0, (int)fileStream.Length);

不行

需要使用

ReadExactly

或者

        var body=new StreamReader(fileStream,Encoding.UTF8).ReadToEnd();

的形式。

 

这命名,绝对属于踩到屎山了。

 

点击登录